<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        //第二题不了解  第11不会 12题没有判断素数
        // 1.JS延迟加载的方式有哪些？（5）
        // defer
        //把js代码写在boby尾部
        // 2.前端 JavaScript 中的 ECMAScript、DOM、BOM 的含义；（5）

        // 3.JavaScript 的数据类型有哪些？（5）
        // 简单数据类型：String,Number,Boolean,null,undefined,Symbol
        //复杂数据类型： Object，Array，Function。
        // 4.如何进行数据类型的判断？（5）
        //typeof
        //instanceof
        // Object.prototype.toString.call()
        // 5.null 和 undefined 的区别？什么时候会得到 undefined？（5）
        // undefined表示变量未加以初始化，默认值为undefined（表示空值）
        // null表示空对象，表示不存在的对象
        // 6.如何理解 null == undefined 返回 true，null === undefined 返回 false？（5）
        // 数据类型不同 两个等于号表示值相等数据类型可以不相等，三个等于号值要相等数据类型也要相等
        // 7.使用 continue 或 break 终止循环时，两种方式的区别是？（5）
        // continue表示跳出符合条件的流程，继续下个流程
        //break表示终止该控制流程
        // 8.如何判断字符串内是否包含指定字符？（5）
        // indexof
        // 9.请尽量列举出数组的方法，并且注明哪些方法会修改原数组，哪些不会；（5）
        // 会修改原数组: reverse(),push(),pop(),unshift(),shift()
        //不会修改原数组：concat(), join(),slice()
        // 10. 请写出下面语句的输出结果：（5）
        // var bar = true,
        //     number = 0;
        // console.log(bar + 0); //1
        // console.log(bar + "xyz");//truexyz
        // console.log(bar + true);//2
        // console.log(+true);//1
        // console.log(!'bluej');//flase
        // console.log(number++);//0
        // console.log(++number);//2
        // console.log(number);//2

        // 11. 根据用户输入时间实现倒计时，输入格式错误时要有所提示（5）
        // window.prompt("请输入目标时间");


        // 13.把下面数组成员排序打乱；（5）
        // 方法一 reverse
        // var arr = [10, 20, 30, 40, 50, 60];
        // arr.reverse();
        // console.log(arr);

        //方法二 sort
        // function sortNunber(a,b){
        //     return b - a
        // }
        // var arr = [10, 20, 30, 40, 50, 60];
        // console.log(arr);
        // console.log(arr.sort(sortNunber));

        // 12.输出从小到大排序好的五个不重复的随机"素数",范围[10-58)；（10）

        // function fn12(min, max){
        //     let arr12 = [];
        //     for (let i = 1; i <= 5; i++) {
        //         let num = Math.floor(Math.random() * (max - min)+min);
        //         if (arr12.indexOf(num) == -1) {
        //             arr12.push(num);
        //         } else {
        //             i--;
        //         }
        //     };
        //     // console.log(arr12);
        //     function sortNunber(max, min){
        //         return max-min
        //     };
        //     console.log(arr12.sort(sortNunber));
        // };
        // fn12(10,58);


        // 14. 将多个数组进行去重合并；（10）
        // var arr1 = [1, 2, 3],
        //     arr2 = [2, 3, 4, 5];
        // var arr3 = [];
        // arr3=arr1.concat(arr2);
        // // console.log(arr3);
        // var newArr3 = [];
        // for(let i=0;i<arr3.length;i++){
        // 				for(let j=i+1;j<=i;j++){
        // 					if(arr[i]==arr[j]){
        // 						newArr3.push(arr[i]);
        // 					}
        // 				}
        // 				if(newArr3.indexOf(arr3[i])== -1){
        // 					newArr3.push(arr3[i]);
        // 				}
        // 			}
        // 			console.log(newArr3);



        // 15. 找出数组 arr=[1, 2, 3, "melon", 4, "melon", 2, 4, "melon"] 中重复出现过的元素,并用数组将重复元素装起来输出,并且统计每个元素出现的次数（10）
        // var arr = [1, 2, 3, "melon", 4, "melon", 2, 4, "melon"];
        // var newArr = [];
        // //计算2出现的次数
        // var num2 = 0;
        // for (let i = 0; i < arr.length; i++) {
        //     if (arr[i] == 2) {
        //         num2++;
        //     }
        // };
        // console.log("2出现的次数为" + num2 + "次");
        // //计算4出现的次数
        // var num4 = 0;
        // for (let i = 0; i < arr.length; i++) {
        //     if (arr[i] == 4) {
        //         num4++;
        //     }
        // };
        // console.log("4出现的次数为" + num4 + "次");
        // //计算melon出现的次数
        // var numMelon = 0;
        // for (let i = 0; i < arr.length; i++) {
        //     if (arr[i] == "melon") {
        //         numMelon++;
        //     }
        // };
        // console.log("melon出现的次数为" + numMelon + "次");

        // //把重复出现的值提取出来
        // arr.filter(function (item, index) {
        //     if (arr.indexOf(item) != arr.lastIndexOf(item)) {
        //         if (newArr.indexOf(item) == -1) {
        //             newArr.push(item);
        //         }
        //         return item;
        //     }
        // });

        // console.log(newArr);

        // 16. 找出数组中年龄小于18岁的女生的信息重新组成新的数组,并且将她们count变为现有的平方（10）
        var arr = [{
            name: "111",
            sex: "boy",
            age: 18,
            count: 20
        },
        {
            name: "222",
            sex: "girl",
            age: 17,
            count: 30
        },
        {
            name: "333",
            sex: "boy",
            age: 16,
            count: 40
        },
        {
            name: "444",
            sex: "girl",
            age: 15,
            count: 50
        },
        {
            name: "555",
            sex: "boy",
            age: 20,
            count: 60
        },
        {
            name: "666",
            sex: "girl",
            age: 13,
            count: 70
        },
        {
            name: "777",
            sex: "boy",
            age: 14,
            count: 80
        }
        ]
        arr16 = [];
         arr16 = arr.filter(function (item, index) {
            return item.age < 18
        });
        console.log("arr16",arr16);
        arr16.filter(function(ele) {
             return ele.count=ele.count*ele.count
        });
        console.log("edit===>arr16",arr16);
    </script>
</body>
</html>